home *** CD-ROM | disk | FTP | other *** search
/ MPEG Toolkit / MPEG Toolkit.iso / win / med-lib / mdctrl.z / MDCTRL.PAS < prev    next >
Pascal/Delphi Source File  |  1995-08-11  |  29KB  |  1,219 lines

  1. unit Mdctrl;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinCrt, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, ExtCtrls, TabNotBk, Spin, Menus;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     cmdOpen: TButton;
  12.     cmdPlay: TButton;
  13.     cmdClose: TButton;
  14.     Timer1: TTimer;
  15.     txtFileName: TEdit;
  16.     cmdExit: TButton;
  17.     cmdPause: TButton;
  18.     tabControls: TTabbedNotebook;
  19.     cmdLite: TButton;
  20.     cmdCloseAll: TButton;
  21.     cmdStep: TButton;
  22.     cmdStop: TButton;
  23.     cmdRewind: TButton;
  24.     cmdRestart: TButton;
  25.     txtFrame: TEdit;
  26.     cmdGoto: TButton;
  27.     cmdHide: TButton;
  28.     cmdHideVid: TButton;
  29.     cmdHideCtrl: TButton;
  30.     cmdShow: TButton;
  31.     cmdShowVid: TButton;
  32.     cmdShowCtrl: TButton;
  33.     cmdBottom: TButton;
  34.     cmdBottom2: TButton;
  35.     cmdTop: TButton;
  36.     chkShowBtmBtn: TCheckBox;
  37.     Bevel1: TBevel;
  38.     lblFrameNo: TLabel;
  39.     Label1: TLabel;
  40.     Bevel2: TBevel;
  41.     lblStateValue: TLabel;
  42.     lblState: TLabel;
  43.     optModal: TRadioButton;
  44.     optNonModal: TRadioButton;
  45.     optNoControl: TRadioButton;
  46.     txtBX: TEdit;
  47.     txtBY: TEdit;
  48.     txtVX: TEdit;
  49.     txtVY: TEdit;
  50.     txtCX: TEdit;
  51.     txtCY: TEdit;
  52.     lblVidCtrl: TLabel;
  53.     lblVideo: TLabel;
  54.     lblCtrlBar: TLabel;
  55.     txtBW: TEdit;
  56.     txtBH: TEdit;
  57.     txtVH: TEdit;
  58.     txtVW: TEdit;
  59.     txtCW: TEdit;
  60.     txtCH: TEdit;
  61.     lblX: TLabel;
  62.     lblY: TLabel;
  63.     lblW: TLabel;
  64.     lblH: TLabel;
  65.     cmdSetPosVC: TButton;
  66.     cmdSetSizeVC: TButton;
  67.     cmdSetPosV: TButton;
  68.     cmdSetSizeV: TButton;
  69.     cmdSetPosC: TButton;
  70.     cmdSetSizeC: TButton;
  71.     Bevel3: TBevel;
  72.     Bevel4: TBevel;
  73.     Bevel5: TBevel;
  74.     Label2: TLabel;
  75.     lblSetPos: TLabel;
  76.     lblSetSize: TLabel;
  77.     cmdGetSizeC: TButton;
  78.     cmdGetPosC: TButton;
  79.     cmdGetPosV: TButton;
  80.     cmdGetSizeV: TButton;
  81.     cmdGetSizeVC: TButton;
  82.     cmdGetPosVC: TButton;
  83.     Label3: TLabel;
  84.     Bevel6: TBevel;
  85.     Label4: TLabel;
  86.     Bevel7: TBevel;
  87.     Bevel8: TBevel;
  88.     Label5: TLabel;
  89.     sclPlaybackSpeed: TScrollBar;
  90.     lblPlaybackSpeed: TLabel;
  91.     txtRed: TEdit;
  92.     txtGreen: TEdit;
  93.     txtBlue: TEdit;
  94.     cmdColor: TButton;
  95.     clrDialog: TColorDialog;
  96.     shpColor: TShape;
  97.     chkVideoPalette: TCheckBox;
  98.     txtOffsetX: TEdit;
  99.     txtOffsetY: TEdit;
  100.     cmdSetOffset: TButton;
  101.     Bevel9: TBevel;
  102.     lblLengthDisp: TLabel;
  103.     lblLength: TLabel;
  104.     txtFrameBeg: TEdit;
  105.     txtFrameEnd: TEdit;
  106.     cmdSetClip: TButton;
  107.     lblAreaClicked: TLabel;
  108.     Bevel10: TBevel;
  109.     optMoveable: TRadioButton;
  110.     optInteractive: TRadioButton;
  111.     spnType: TSpinEdit;
  112.     cmdSetClipRegion: TButton;
  113.     txtClipX: TEdit;
  114.     txtClipY: TEdit;
  115.     txtClipWidth: TEdit;
  116.     txtClipHeight: TEdit;
  117.     cmdMute: TButton;
  118.     scrAudioLevel: TScrollBar;
  119.     lblAudLevel: TLabel;
  120.     lblFrameRate: TLabel;
  121.     cmdFrameRate: TButton;
  122.     Bevel11: TBevel;
  123.     lblPlayedStatus: TLabel;
  124.     Bevel12: TBevel;
  125.     cmdPlayedStatus: TButton;
  126.     lblOpenFiles: TLabel;
  127.     Bevel13: TBevel;
  128.     cmdOpenFiles: TButton;
  129.     cmdFileType: TButton;
  130.     lblFileType: TLabel;
  131.     Bevel14: TBevel;
  132.     cmdWindowHandle: TButton;
  133.     popHWND: TPopupMenu;
  134.     mnuHandle: TMenuItem;
  135.     pnlWindowHandle: TPanel;
  136.     pnlDeviceID: TPanel;
  137.     cmdDeviceID: TButton;
  138.     pnlClipFrame: TPanel;
  139.     cmdClipFrame: TButton;
  140.     pnlClipLength: TPanel;
  141.     cmdClipLength: TButton;
  142.     pnlDisplayState: TPanel;
  143.     cmdDisplayState: TButton;
  144.     txtSendString: TEdit;
  145.     Label6: TLabel;
  146.     cmdSendString: TButton;
  147.     pnlMCIReturn: TPanel;
  148.     pnlCursor: TPanel;
  149.     imgCursor: TImage;
  150.     SpinButton1: TSpinButton;
  151.     cmdCursorSetVC: TButton;
  152.     cmdCursorResetVC: TButton;
  153.     cmdCursorSetV: TButton;
  154.     cmdCursorResetV: TButton;
  155.     cmdCursorSetC: TButton;
  156.     cmdCursorResetC: TButton;
  157.     Label7: TLabel;
  158.     Label8: TLabel;
  159.     dlgOpen: TOpenDialog;
  160.     cmdBrowse: TButton;
  161.     txtGraphicFileName: TEdit;
  162.     Label9: TLabel;
  163.     cmdOpenGraphic: TButton;
  164.     cmdOpenKeep: TButton;
  165.     chkUsePalette: TCheckBox;
  166.     cmdShowGraphic: TButton;
  167.     cmdHideGraphic: TButton;
  168.     cmdCloseGraphic: TButton;
  169.     txtGrXPos: TEdit;
  170.     txtGrYPos: TEdit;
  171.     txtGrWidth: TEdit;
  172.     txtGrHeight: TEdit;
  173.     cmdShowGraphicPos: TButton;
  174.     txtDispXPos: TEdit;
  175.     txtDispYPos: TEdit;
  176.     cmdDisplayGraphic: TButton;
  177.     cmdBrowseVideo: TButton;
  178.     dlgVideo: TOpenDialog;
  179.     Button1: TButton;
  180.     cmdEject: TButton;
  181.     cmdUnloadLib: TButton;
  182.     cmdLoadLib: TButton;
  183.     procedure cmdOpenClick(Sender: TObject);
  184.     procedure cmdPlayClick(Sender: TObject);
  185.     procedure cmdCloseClick(Sender: TObject);
  186.     procedure cmdExitClick(Sender: TObject);
  187.     procedure Timer1Timer(Sender: TObject);
  188.     procedure cmdPauseClick(Sender: TObject);
  189.     procedure cmdCloseAllClick(Sender: TObject);
  190.     procedure cmdStepClick(Sender: TObject);
  191.     procedure cmdStopClick(Sender: TObject);
  192.     procedure cmdRewindClick(Sender: TObject);
  193.     procedure cmdRestartClick(Sender: TObject);
  194.     procedure cmdLiteClick(Sender: TObject);
  195.     procedure cmdGotoClick(Sender: TObject);
  196.     procedure cmdHideClick(Sender: TObject);
  197.     procedure cmdHideVidClick(Sender: TObject);
  198.     procedure cmdHideCtrlClick(Sender: TObject);
  199.     procedure cmdShowClick(Sender: TObject);
  200.     procedure cmdShowVidClick(Sender: TObject);
  201.     procedure cmdShowCtrlClick(Sender: TObject);
  202.     procedure cmdBottomClick(Sender: TObject);
  203.     procedure cmdBottom2Click(Sender: TObject);
  204.     procedure chkShowBtmBtnClick(Sender: TObject);
  205.     procedure cmdTopClick(Sender: TObject);
  206.     {procedure cmdEjectClick(Sender: TObject);}
  207.     procedure optModalClick(Sender: TObject);
  208.     procedure optNonModalClick(Sender: TObject);
  209.     procedure optNoControlClick(Sender: TObject);
  210.     procedure FormCreate(Sender: TObject);
  211.     procedure sclPlaybackSpeedChange(Sender: TObject);
  212.     procedure shpColorMouseDown(Sender: TObject; Button: TMouseButton;
  213.       Shift: TShiftState; X, Y: Integer);
  214.     procedure cmdColorClick(Sender: TObject);
  215.     procedure txtRedChange(Sender: TObject);
  216.     procedure txtGreenChange(Sender: TObject);
  217.     procedure txtBlueChange(Sender: TObject);
  218.     procedure chkVideoPaletteClick(Sender: TObject);
  219.     procedure cmdSetOffsetClick(Sender: TObject);
  220.     procedure txtOffsetXChange(Sender: TObject);
  221.     procedure txtOffsetYChange(Sender: TObject);
  222.     procedure cmdSetClipClick(Sender: TObject);
  223.     procedure optMoveableClick(Sender: TObject);
  224.     procedure optInteractiveClick(Sender: TObject);
  225.     procedure cmdSetClipRegionClick(Sender: TObject);
  226.     procedure cmdMuteClick(Sender: TObject);
  227.     procedure scrAudioLevelChange(Sender: TObject);
  228.     procedure cmdSetPosVCClick(Sender: TObject);
  229.     procedure cmdSetPosVClick(Sender: TObject);
  230.     procedure cmdSetPosCClick(Sender: TObject);
  231.     procedure cmdSetSizeVCClick(Sender: TObject);
  232.     procedure cmdSetSizeVClick(Sender: TObject);
  233.     procedure cmdSetSizeCClick(Sender: TObject);
  234.     procedure cmdGetPosVCClick(Sender: TObject);
  235.     procedure cmdGetPosVClick(Sender: TObject);
  236.     procedure cmdGetPosCClick(Sender: TObject);
  237.     procedure cmdGetSizeVCClick(Sender: TObject);
  238.     procedure cmdGetSizeVClick(Sender: TObject);
  239.     procedure cmdGetSizeCClick(Sender: TObject);
  240.     procedure cmdFrameRateClick(Sender: TObject);
  241.     procedure cmdPlayedStatusClick(Sender: TObject);
  242.     procedure cmdOpenFilesClick(Sender: TObject);
  243.     procedure cmdFileTypeClick(Sender: TObject);
  244.     procedure cmdWindowHandleClick(Sender: TObject);
  245.     procedure pnlWindowHandleClick(Sender: TObject);
  246.     procedure cmdDeviceIDClick(Sender: TObject);
  247.     procedure cmdClipFrameClick(Sender: TObject);
  248.     procedure cmdClipLengthClick(Sender: TObject);
  249.     procedure cmdDisplayStateClick(Sender: TObject);
  250.     procedure cmdSendStringClick(Sender: TObject);
  251.     procedure txtSendStringKeyPress(Sender: TObject; var Key: Char);
  252.     procedure SpinButton1DownClick(Sender: TObject);
  253.     procedure SpinButton1UpClick(Sender: TObject);
  254.     procedure cmdCursorSetVCClick(Sender: TObject);
  255.     procedure cmdCursorSetVClick(Sender: TObject);
  256.     procedure cmdCursorSetCClick(Sender: TObject);
  257.     procedure cmdCursorResetCClick(Sender: TObject);
  258.     procedure cmdCursorResetVClick(Sender: TObject);
  259.     procedure cmdCursorResetVCClick(Sender: TObject);
  260.     procedure cmdBrowseClick(Sender: TObject);
  261.     procedure cmdOpenGraphicClick(Sender: TObject);
  262.     procedure cmdOpenKeepClick(Sender: TObject);
  263.     procedure cmdShowGraphicClick(Sender: TObject);
  264.     procedure cmdHideGraphicClick(Sender: TObject);
  265.     procedure cmdCloseGraphicClick(Sender: TObject);
  266.     procedure cmdShowGraphicPosClick(Sender: TObject);
  267.     procedure cmdDisplayGraphicClick(Sender: TObject);
  268.     procedure cmdBrowseVideoClick(Sender: TObject);
  269.     procedure FormDestroy(Sender: TObject);
  270.     procedure Button1Click(Sender: TObject);
  271.     procedure cmdEjectClick(Sender: TObject);
  272.     procedure cmdUnloadLibClick(Sender: TObject);
  273.     procedure cmdLoadLibClick(Sender: TObject);
  274.   private
  275.     { Private declarations }
  276.   public
  277.     { Public declarations }
  278.   end;
  279.  
  280. var
  281.   Form1: TForm1;
  282.   nFileHandle : integer;
  283.  
  284. implementation
  285. {$R *.DFM}
  286. {$I mediadyn.inc}
  287. { Commented $ I Jakarta.inc }
  288.  
  289. procedure TForm1.cmdOpenClick(Sender: TObject);
  290. Var
  291.    szFileName: array[0..79] of Char;
  292.    nControlType : Integer;
  293.    szHold : String;
  294.    nVolume : Integer;
  295.  
  296. begin
  297.      { Do this to get the filename in the right format
  298.        for sending to the DLL }
  299.      StrPCopy ( szFileName, txtFileName.Text );
  300.  
  301.      if optModal.Checked then nControlType := MD_CONTROL_INT_MODAL;
  302.      if optNonModal.Checked then nControlType := MD_CONTROL_INT_NONMODAL;
  303.      if optNoControl.Checked then nControlType := MD_CONTROL_INT_NONE;
  304.  
  305.      mdClose( 0 ); { Just a precaution here }
  306.  
  307.      { Open the file using all of the automatic settings }
  308.      nFileHandle := mdOpen( Form1.ClientHandle, szFileName, 10, 10,
  309.                   MD_VIDSIZE_W_AUTOMATIC, MD_VIDSIZE_H_AUTOMATIC,
  310.                   MD_FRAME_DEFAULT_BEG, MD_FRAME_DEFAULT_END,
  311.                   nControlType, MD_LOAD_AV_SHOW);
  312.  
  313.      if nFileHandle <> 0 then Timer1.Enabled := True;
  314.  
  315.      Str( mdGetLength( nFileHandle ), szHold );
  316.      lblLengthDisp.Caption := szHold;
  317.      optMoveable.Checked := False;
  318.      nVolume := mdGetVolumeLevel( nFileHandle );
  319.      scrAudioLevel.Position := 100 - nVolume;
  320. end;
  321.  
  322. procedure TForm1.cmdPlayClick(Sender: TObject);
  323. begin
  324.      mdPlay( nFileHandle, MD_PLAY_NONMODAL );
  325. end;
  326.  
  327. procedure TForm1.cmdCloseClick(Sender: TObject);
  328. begin
  329.      mdClose( nFileHandle );
  330. end;
  331.  
  332. procedure TForm1.cmdExitClick(Sender: TObject);
  333. begin
  334.      halt(1); { Exit the Application }
  335. end;
  336.  
  337. procedure TForm1.Timer1Timer(Sender: TObject);
  338. var
  339.    szHold : String;
  340.    nTmp   : Integer;
  341.  
  342. begin
  343.      Str( mdGetFrame( nFileHandle ), szHold );
  344.      lblFrameNo.Caption := szHold;
  345.      case mdGetPlayState( nFileHandle ) of
  346.           0: lblStateValue.caption := 'Closed';
  347.           1: lblStateValue.caption := 'Playing';
  348.           2: lblStateValue.caption := 'Seeking';
  349.           3: lblStateValue.caption := 'Paused';
  350.           4: lblStateValue.caption := 'End';
  351.           5: lblStateValue.caption := 'Stopped';
  352.      end;
  353.      if optInteractive.Checked then
  354.      Begin
  355.           nTmp := mdGetAreaClicked( nFileHandle );
  356.           if nTmp > 0 then
  357.           Begin
  358.                Str( nTmp, szHold );
  359.                lblAreaClicked.Caption := szHold;
  360.           End;
  361.      End;
  362.  
  363. end;
  364.  
  365. procedure TForm1.cmdPauseClick(Sender: TObject);
  366. begin
  367.      mdPause( nFileHandle );
  368. end;
  369.  
  370. procedure TForm1.cmdCloseAllClick(Sender: TObject);
  371. begin
  372.      mdClose( 0 );
  373. end;
  374.  
  375. procedure TForm1.cmdStepClick(Sender: TObject);
  376. begin
  377.      mdStep( nFileHandle );
  378. end;
  379.  
  380. procedure TForm1.cmdStopClick(Sender: TObject);
  381. begin
  382.      mdStop( nFileHandle );
  383. end;
  384.  
  385. procedure TForm1.cmdRewindClick(Sender: TObject);
  386. begin
  387.      mdRewind( nFileHandle );
  388. end;
  389.  
  390. procedure TForm1.cmdRestartClick(Sender: TObject);
  391. begin
  392.      mdRestart( nFileHandle );
  393. end;
  394.  
  395. procedure TForm1.cmdLiteClick(Sender: TObject);
  396. Var
  397.    szFileName: array[0..79] of Char;
  398.  
  399. begin
  400.      StrPCopy ( szFileName, txtFileName.Text );
  401.      nFileHandle := mdOpenLite( Form1.ClientHandle, szFileName, 10, 10, 1 );
  402. end;
  403.  
  404. procedure TForm1.cmdGotoClick(Sender: TObject);
  405. Var
  406.    lFrame : LongInt;
  407.    nCharPos : Integer;
  408. begin
  409.      Val( txtFrame.text, lFrame, nCharPos );
  410.      mdGotoFrame( nFileHandle, lFrame );
  411. end;
  412.  
  413. procedure TForm1.cmdHideClick(Sender: TObject);
  414. begin
  415.      mdHide( nFileHandle );
  416. end;
  417.  
  418. procedure TForm1.cmdHideVidClick(Sender: TObject);
  419. begin
  420.      mdHideVideo( nFileHandle );
  421. end;
  422.  
  423. procedure TForm1.cmdHideCtrlClick(Sender: TObject);
  424. begin
  425.      mdHideCtrl( nFileHandle );
  426. end;
  427.  
  428. procedure TForm1.cmdShowClick(Sender: TObject);
  429. begin
  430.      mdShow( nFileHandle );
  431. end;
  432.  
  433. procedure TForm1.cmdShowVidClick(Sender: TObject);
  434. begin
  435.      mdShowVideo( nFileHandle );
  436. end;
  437.  
  438. procedure TForm1.cmdShowCtrlClick(Sender: TObject);
  439. begin
  440.      mdShowCtrl( nFileHandle );
  441. end;
  442.  
  443. procedure TForm1.cmdBottomClick(Sender: TObject);
  444. begin
  445.      mdSetWinTop( nFileHandle );
  446. end;
  447.  
  448. procedure TForm1.cmdBottom2Click(Sender: TObject);
  449. begin
  450.      mdSetWinBottom( nFileHandle );
  451. end;
  452.  
  453. procedure TForm1.chkShowBtmBtnClick(Sender: TObject);
  454. begin
  455.      if chkShowBtmBtn.checked then
  456.         cmdBottom.visible := True
  457.      else
  458.         cmdBottom.visible := False;
  459. end;
  460.  
  461. procedure TForm1.cmdTopClick(Sender: TObject);
  462. begin
  463.      mdSetWinTop( nFileHandle );
  464. end;
  465.  
  466. procedure TForm1.optModalClick(Sender: TObject);
  467. begin
  468.      mdSetCtrlType( nFileHandle, MD_CONTROL_INT_MODAL );
  469. end;
  470.  
  471. procedure TForm1.optNonModalClick(Sender: TObject);
  472. begin
  473.      mdSetCtrlType( nFileHandle, MD_CONTROL_INT_NONMODAL );
  474. end;
  475.  
  476. procedure TForm1.optNoControlClick(Sender: TObject);
  477. begin
  478.      mdSetCtrlType( nFileHandle, MD_CONTROL_INT_NONE );
  479. end;
  480.  
  481. procedure TForm1.FormCreate(Sender: TObject);
  482. begin
  483.  
  484.   Application.ShowHint := False;
  485.   Application.HintColor := clAqua;
  486.   Application.HintPause := 500;
  487.  
  488.   Form1.Left := 0;
  489.   Form1.Top := 0;
  490.  
  491.   nFileHandle := 0;
  492.  
  493. end;
  494.  
  495. procedure TForm1.sclPlaybackSpeedChange(Sender: TObject);
  496. var
  497.    szHold : String;
  498.  
  499. begin
  500.  
  501.      Str( sclPlaybackSpeed.Position, szHold );
  502.      lblPlaybackSpeed.Caption := 'Speed:  ' + szHold;
  503.  
  504.      mdSetPlaybackSpeed( nFileHandle, sclPlaybackSpeed.Position * 10 );
  505.  
  506. end;
  507.  
  508.  
  509. procedure TForm1.shpColorMouseDown(Sender: TObject; Button: TMouseButton;
  510.   Shift: TShiftState; X, Y: Integer);
  511.  
  512. var
  513.    szHold : String;
  514.    nTmp   : Integer;
  515.  
  516. begin
  517.      clrDialog.Execute;
  518.      shpColor.Brush.Color := clrDialog.color;
  519.  
  520.      nTmp := clrDialog.color and 255;
  521.      Str( nTmp, szHold );
  522.      txtRed.Text   := szHold;
  523.  
  524.      nTmp := ( clrDialog.color shr 8 ) and 255;
  525.      Str( nTmp, szHold );
  526.      txtGreen.Text := szHold;
  527.  
  528.      nTmp := ( clrDialog.color shr 16 ) and 255;
  529.      Str( nTmp, szHold );
  530.      txtBlue.Text  := szHold;
  531.  
  532. end;
  533.  
  534. procedure TForm1.cmdColorClick(Sender: TObject);
  535. var
  536.    nRed, nGreen, nBlue, nCode : Integer;
  537.    lColor : LongInt;
  538.  
  539. begin
  540.  
  541.      val( txtRed.Text,   nRed,   nCode );
  542.      val( txtGreen.Text, nGreen, nCode );
  543.      val( txtBlue.Text,  nBlue,  nCode );
  544.  
  545.      lColor := LongInt(nRed) + ( LongInt(nGreen) * 256 ) + ( LongInt(nBlue) * 65536 );
  546.  
  547.      shpColor.Brush.Color := lColor +  33554432;
  548.  
  549.      mdSetKeyColor( nRed, nGreen, nBlue );
  550.  
  551. end;
  552.  
  553. procedure TForm1.txtRedChange(Sender: TObject);
  554. var
  555.    nTmp, nCode : Integer;
  556.  
  557. begin
  558.    val( txtRed.Text, nTmp, nCode );
  559.  
  560.    if nTmp > 255 then txtRed.Text := '255';
  561.    if nTmp < 0 then txtRed.Text := '0';
  562.  
  563. end;
  564.  
  565. procedure TForm1.txtGreenChange(Sender: TObject);
  566. var
  567.    nTmp, nCode : Integer;
  568.  
  569. begin
  570.    val( txtGreen.Text, nTmp, nCode );
  571.  
  572.    if nTmp > 255 then txtGreen.Text := '255';
  573.    if nTmp < 0 then txtGreen.Text := '0';
  574.  
  575. end;
  576.  
  577. procedure TForm1.txtBlueChange(Sender: TObject);
  578. var
  579.    nTmp, nCode : Integer;
  580.  
  581. begin
  582.    val( txtBlue.Text, nTmp, nCode );
  583.  
  584.    if nTmp > 255 then txtBlue.Text := '255';
  585.    if nTmp < 0 then txtBlue.Text := '0';
  586.  
  587. end;
  588.  
  589. procedure TForm1.chkVideoPaletteClick(Sender: TObject);
  590. begin
  591.      mdSetVideoPalette( Ord(chkVideoPalette.Checked) );
  592. end;
  593.  
  594. procedure TForm1.cmdSetOffsetClick(Sender: TObject);
  595. var
  596.    nXPos, nYPos, nCode : Integer;
  597.  
  598. begin
  599.  
  600.      val( txtOffsetX.Text, nXPos, nCode );
  601.      val( txtOffsetY.Text, nYPos, nCode );
  602.  
  603.      mdSetVideoOffset( nFileHandle, nXPos, nYPos );
  604.  
  605. end;
  606.  
  607. procedure TForm1.txtOffsetXChange(Sender: TObject);
  608. var
  609.    nTmp, nCode : Integer;
  610.  
  611. begin
  612.    val( txtOffsetX.Text, nTmp, nCode );
  613.  
  614.    if nTmp > 255 then txtOffsetX.Text := '255';
  615.    if nTmp < 0 then txtOffsetX.Text := '0';
  616.  
  617. end;
  618.  
  619. procedure TForm1.txtOffsetYChange(Sender: TObject);
  620. var
  621.    nTmp, nCode : Integer;
  622.  
  623. begin
  624.    val( txtOffsetY.Text, nTmp, nCode );
  625.  
  626.    if nTmp > 255 then txtOffsetY.Text := '255';
  627.    if nTmp < 0 then txtOffsetY.Text := '0';
  628.  
  629. end;
  630.  
  631. procedure TForm1.cmdSetClipClick(Sender: TObject);
  632. var
  633.    lFrameBeg, lFrameEnd : LongInt;
  634.  
  635. begin
  636.  
  637.      lFrameBeg := StrToInt( txtFrameBeg.Text );
  638.      lFrameEnd := StrToInt( txtFrameEnd.Text );
  639.  
  640.      mdSetClip( nFileHandle, lFrameBeg, lFrameEnd );
  641.  
  642. end;
  643.  
  644. procedure TForm1.optMoveableClick(Sender: TObject);
  645. begin
  646.      mdSetWindowInteractive( nFileHandle, Ord( False ) );
  647.      mdSetWindowMoveable( nFileHandle, Ord(optMoveable.Checked) );
  648. end;
  649.  
  650. procedure TForm1.optInteractiveClick(Sender: TObject);
  651. begin
  652.      mdSetWindowMoveable( nFileHandle, Ord(False) );
  653.      mdSetWindowInteractive( nFileHandle, Ord( optInteractive.Checked ) );
  654. end;
  655.  
  656. procedure TForm1.cmdSetClipRegionClick(Sender: TObject);
  657. var
  658.    nXPos, nYPos, nWidth, nHeight, nType, nCode : Integer;
  659.  
  660. begin
  661.  
  662.      val( txtClipX.Text,      nXPos,   nCode );
  663.      val( txtClipY.Text,      nYPos,   nCode );
  664.      val( txtClipWidth.Text,  nWidth,  nCode );
  665.      val( txtClipHeight.Text, nHeight, nCode );
  666.      {val( spnType.Value,      nType,   nCode );}
  667.  
  668.      mdSetClippingRegion( nFileHandle, nXPos, nYPos, nWidth, nHeight, spnType.Value );
  669.  
  670.  
  671. end;
  672.  
  673. procedure TForm1.cmdMuteClick(Sender: TObject);
  674. begin
  675.      mdSetAudioMute( nFileHandle );
  676. end;
  677.  
  678. procedure TForm1.scrAudioLevelChange(Sender: TObject);
  679. var
  680.    nVolume : Integer;
  681.  
  682. begin
  683.  
  684.    nVolume := 100 - scrAudioLevel.Position;
  685.  
  686.    mdSetAudioLevel( nFileHandle, nVolume );
  687.  
  688. end;
  689.  
  690. procedure TForm1.cmdSetPosVCClick(Sender: TObject);
  691. var
  692.    nXPos, nYPos, nCode : Integer;
  693.  
  694. begin
  695.  
  696.      val( txtBX.Text, nXPos,   nCode );
  697.      val( txtBY.Text, nYPos,   nCode );
  698.  
  699.      mdSetWinPos( nFileHandle, nXPos, nYPos );
  700.  
  701. end;
  702.  
  703. procedure TForm1.cmdSetPosVClick(Sender: TObject);
  704. var
  705.    nXPos, nYPos, nCode : Integer;
  706.  
  707. begin
  708.  
  709.      val( txtVX.Text, nXPos,   nCode );
  710.      val( txtVY.Text, nYPos,   nCode );
  711.  
  712.      mdSetVideoWinPos( nFileHandle, nXPos, nYPos );
  713.  
  714. end;
  715.  
  716. procedure TForm1.cmdSetPosCClick(Sender: TObject);
  717. var
  718.    nXPos, nYPos, nCode : Integer;
  719.  
  720. begin
  721.  
  722.      val( txtCX.Text, nXPos,   nCode );
  723.      val( txtCY.Text, nYPos,   nCode );
  724.  
  725.      mdSetCtrlWinPos( nFileHandle, nXPos, nYPos );
  726.  
  727. end;
  728.  
  729. procedure TForm1.cmdSetSizeVCClick(Sender: TObject);
  730. var
  731.    nWidth, nHeight, nCode : Integer;
  732.  
  733. begin
  734.  
  735.      val( txtBW.Text, nWidth,  nCode );
  736.      val( txtBH.Text, nHeight, nCode );
  737.  
  738.      mdSetWinSize( nFileHandle, nWidth, nHeight );
  739.  
  740. end;
  741.  
  742. procedure TForm1.cmdSetSizeVClick(Sender: TObject);
  743. var
  744.    nWidth, nHeight, nCode : Integer;
  745.  
  746. begin
  747.  
  748.      val( txtVW.Text, nWidth,  nCode );
  749.      val( txtVH.Text, nHeight, nCode );
  750.  
  751.      mdSetVideoWinSize( nFileHandle, nWidth, nHeight );
  752.  
  753. end;
  754.  
  755. procedure TForm1.cmdSetSizeCClick(Sender: TObject);
  756. var
  757.    nWidth, nHeight, nCode : Integer;
  758.  
  759. begin
  760.  
  761.      val( txtCW.Text, nWidth,  nCode );
  762.      {val( txtCH.Text, nHeight, nCode );}
  763.  
  764.      mdSetCtrlWinSize( nFileHandle, nWidth );
  765.  
  766. end;
  767.  
  768. procedure TForm1.cmdGetPosVCClick(Sender: TObject);
  769. var
  770.    nXPos, nYPos : Integer;
  771.    szHold : String;
  772.  
  773. begin
  774.  
  775.      nXPos := mdGetWinX( nFileHandle );
  776.      nYPos := mdGetWinY( nFileHandle );
  777.  
  778.      Str( nXPos, szHold );
  779.      txtBX.Text := szHold;
  780.  
  781.      Str( nYPos, szHold );
  782.      txtBY.Text := szHold;
  783.  
  784. end;
  785.  
  786. procedure TForm1.cmdGetPosVClick(Sender: TObject);
  787. var
  788.    nXPos, nYPos : Integer;
  789.    szHold : String;
  790.  
  791. begin
  792.  
  793.      nXPos := mdGetVideoWinX( nFileHandle );
  794.      nYPos := mdGetVideoWinY( nFileHandle );
  795.  
  796.      Str( nXPos, szHold );
  797.      txtVX.Text := szHold;
  798.  
  799.      Str( nYPos, szHold );
  800.      txtVY.Text := szHold;
  801.  
  802. end;
  803.  
  804. procedure TForm1.cmdGetPosCClick(Sender: TObject);
  805. var
  806.    nXPos, nYPos : Integer;
  807.    szHold : String;
  808.  
  809. begin
  810.  
  811.      nXPos := mdGetCtrlWinX( nFileHandle );
  812.      nYPos := mdGetCtrlWinY( nFileHandle );
  813.  
  814.      Str( nXPos, szHold );
  815.      txtCX.Text := szHold;
  816.  
  817.      Str( nYPos, szHold );
  818.      txtCY.Text := szHold;
  819.  
  820. end;
  821.  
  822. procedure TForm1.cmdGetSizeVCClick(Sender: TObject);
  823. var
  824.    nWidth, nHeight : Integer;
  825.    szHold : String;
  826.  
  827. begin
  828.  
  829.      nWidth  := mdGetWinWidth( nFileHandle );
  830.      nHeight := mdGetWinHeight( nFileHandle );
  831.  
  832.      Str( nWidth, szHold );
  833.      txtBW.Text := szHold;
  834.  
  835.      Str( nHeight, szHold );
  836.      txtBH.Text := szHold;
  837.  
  838. end;
  839.  
  840. procedure TForm1.cmdGetSizeVClick(Sender: TObject);
  841. var
  842.    nWidth, nHeight : Integer;
  843.    szHold : String;
  844.  
  845. begin
  846.  
  847.      nWidth  := mdGetVideoWinWidth( nFileHandle );
  848.      nHeight := mdGetVideoWinHeight( nFileHandle );
  849.  
  850.      Str( nWidth, szHold );
  851.      txtVW.Text := szHold;
  852.  
  853.      Str( nHeight, szHold );
  854.      txtVH.Text := szHold;
  855.  
  856. end;
  857.  
  858. procedure TForm1.cmdGetSizeCClick(Sender: TObject);
  859. var
  860.    nWidth, nHeight : Integer;
  861.    szHold : String;
  862.  
  863. begin
  864.  
  865.      nWidth  := mdGetCtrlWinWidth( nFileHandle );
  866.      {nHeight := mdGetVideoWinHeight( nFileHandle );}
  867.  
  868.      Str( nWidth, szHold );
  869.      txtCW.Text := szHold;
  870.  
  871.      {Str( nHeight, szHold );
  872.      txtVH.Text := szHold;}
  873.  
  874. end;
  875.  
  876. procedure TForm1.cmdFrameRateClick(Sender: TObject);
  877. var
  878.    szHold : String;
  879.  
  880. begin
  881.      Str( mdGetFrameRate( nFileHandle ), szHold );
  882.  
  883.      lblFrameRate.Caption := szHold;
  884.  
  885. end;
  886.  
  887. procedure TForm1.cmdPlayedStatusClick(Sender: TObject);
  888. var
  889.    nPlayed : Integer;
  890.    szHold : String;
  891.  
  892. begin
  893.      nPlayed := mdGetPlayedStatus( nFileHandle );
  894.  
  895.      Str( nPlayed, szHold );
  896.  
  897.      lblPlayedStatus.Caption := szHold;
  898.  
  899. end;
  900.  
  901. procedure TForm1.cmdOpenFilesClick(Sender: TObject);
  902. var
  903.    nFiles : Integer;
  904.    szHold : String;
  905.  
  906. begin
  907.      nFiles := mdGetOpenFileCount;
  908.  
  909.      Str( nFiles, szHold );
  910.  
  911.      lblOpenFiles.Caption := szHold;
  912.  
  913. end;
  914.  
  915. procedure TForm1.cmdFileTypeClick(Sender: TObject);
  916. var
  917.    nFileType : Integer;
  918.    szHold : String;
  919.  
  920. begin
  921.      nFileType := mdGetFileType( nFileHandle );
  922.  
  923.      Str( nFileType, szHold );
  924.  
  925.      lblFileType.Caption := szHold;
  926.  
  927. end;
  928.  
  929. procedure TForm1.cmdWindowHandleClick(Sender: TObject);
  930. var
  931.    lhWnd : LongInt;
  932.    whWnd : Word;
  933.    szHold, szMenu : String;
  934.  
  935. begin
  936.      whWnd := mdGetWindowHandle( nFileHandle );
  937.      lhWnd := LongInt( whWnd );
  938.  
  939.      Str( whWnd, szMenu );
  940.      szHold := '0x' + IntToHex( lhWnd, 4 );
  941.      pnlWindowHandle.Caption := szHold;
  942.      mnuHandle.Caption := szMenu;
  943. end;
  944.  
  945. procedure TForm1.pnlWindowHandleClick(Sender: TObject);
  946. var
  947.    CurPos : TPoint;
  948.  
  949. begin
  950.      GetCursorPos( CurPos );
  951.      popHWND.Popup( CurPos.X, CurPos.Y );
  952. end;
  953.  
  954. procedure TForm1.cmdDeviceIDClick(Sender: TObject);
  955. var
  956.    nID : Integer;
  957.    szHold : String;
  958.  
  959. begin
  960.      nID := mdGetDeviceID( nFileHandle );
  961.  
  962.      Str( nID, szHold );
  963.  
  964.      pnlDeviceID.Caption := szHold;
  965.  
  966. end;
  967.  
  968. procedure TForm1.cmdClipFrameClick(Sender: TObject);
  969. var
  970.    lFrame : LongInt;
  971.    szHold : String;
  972.  
  973. begin
  974.  
  975.      lFrame := mdGetClipFrame( nFileHandle );
  976.  
  977.      szHold := IntToStr( lFrame );
  978.  
  979.      pnlClipFrame.Caption := szHold;
  980.  
  981. end;
  982.  
  983. procedure TForm1.cmdClipLengthClick(Sender: TObject);
  984. var
  985.    lFrame : LongInt;
  986.    szHold : String;
  987.  
  988. begin
  989.  
  990.      lFrame := mdGetClipLength( nFileHandle );
  991.  
  992.      szHold := IntToStr( lFrame );
  993.  
  994.      pnlClipLength.Caption := szHold;
  995.  
  996. end;
  997.  
  998. procedure TForm1.cmdDisplayStateClick(Sender: TObject);
  999. var
  1000.    nDisplayState : Integer;
  1001.    szHold : String;
  1002.  
  1003. begin
  1004.      nDisplayState := mdGetDisplayState( nFileHandle );
  1005.  
  1006.      Str( nDisplayState, szHold );
  1007.  
  1008.      pnlDisplayState.Caption := szHold;
  1009.  
  1010. end;
  1011.  
  1012. procedure TForm1.cmdSendStringClick(Sender: TObject);
  1013. Var
  1014.    szSendString: array[0..127] of Char;
  1015.    szHold, szHold1 : String;
  1016.    lRet : LongInt;
  1017.  
  1018. begin
  1019.  
  1020.      StrPCopy ( szSendString, txtSendString.Text );
  1021.      lRet := mdMCISendString( nFileHandle, szSendString );
  1022.  
  1023.      Str( lRet, szHold );
  1024.      szHold1 := 'MCIReturn: ' + szHold;
  1025.  
  1026.      pnlMCIReturn.Caption := szHold1;
  1027.  
  1028. end;
  1029.  
  1030. procedure TForm1.txtSendStringKeyPress(Sender: TObject; var Key: Char);
  1031. begin
  1032.      if Key = Char( 13 ) then
  1033.      begin
  1034.           cmdSendStringClick( Sender );
  1035.           Key := Char( 0 );
  1036.      end;
  1037. end;
  1038.  
  1039. procedure TForm1.SpinButton1DownClick(Sender: TObject);
  1040. begin
  1041.      if imgCursor.Top > -340 then
  1042.         imgCursor.Top := imgCursor.Top - 34;
  1043.  
  1044. end;
  1045.  
  1046. procedure TForm1.SpinButton1UpClick(Sender: TObject);
  1047. begin
  1048.      if imgCursor.Top < 0 then
  1049.         imgCursor.Top := imgCursor.Top + 34;
  1050. end;
  1051.  
  1052. procedure TForm1.cmdCursorSetVCClick(Sender: TObject);
  1053. var
  1054.    nCursor : Integer;
  1055.  
  1056. begin
  1057.      nCursor := Abs( Trunc( imgCursor.Top / 34 ) ) - 1;
  1058.      if nCursor > -1 then
  1059.         mdSetCursor( nCursor )
  1060.      else
  1061.         mdResetCursor;
  1062. end;
  1063.  
  1064. procedure TForm1.cmdCursorSetVClick(Sender: TObject);
  1065. var
  1066.    nCursor : Integer;
  1067.  
  1068. begin
  1069.      nCursor := Abs( Trunc( imgCursor.Top / 34 ) ) - 1;
  1070.      if nCursor > -1 then
  1071.         mdSetVideoCursor( nCursor )
  1072.      else
  1073.         mdResetVideoCursor;
  1074. end;
  1075.  
  1076. procedure TForm1.cmdCursorSetCClick(Sender: TObject);
  1077. var
  1078.    nCursor : Integer;
  1079.  
  1080. begin
  1081.      nCursor := Abs( Trunc( imgCursor.Top / 34 ) ) - 1;
  1082.      if nCursor > -1 then
  1083.         mdSetCtrlCursor( nCursor )
  1084.      else
  1085.         mdResetCtrlCursor;
  1086. end;
  1087.  
  1088. procedure TForm1.cmdCursorResetCClick(Sender: TObject);
  1089. begin
  1090.      mdResetCtrlCursor;
  1091. end;
  1092.  
  1093. procedure TForm1.cmdCursorResetVClick(Sender: TObject);
  1094. begin
  1095.      mdResetVideoCursor;
  1096. end;
  1097.  
  1098. procedure TForm1.cmdCursorResetVCClick(Sender: TObject);
  1099. begin
  1100.      mdResetCursor;
  1101. end;
  1102.  
  1103. procedure TForm1.cmdBrowseClick(Sender: TObject);
  1104. begin
  1105.      dlgOpen.Execute;
  1106.      txtGraphicFileName.Text := dlgOpen.FileName;
  1107. end;
  1108.  
  1109. procedure TForm1.cmdOpenGraphicClick(Sender: TObject);
  1110. var
  1111.    szFileName: array[0..79] of Char;
  1112.  
  1113. begin
  1114.      StrPCopy ( szFileName, txtGraphicFileName.Text );
  1115.      mdOpenGraphic( nFileHandle, szFileName );
  1116. end;
  1117.  
  1118. procedure TForm1.cmdOpenKeepClick(Sender: TObject);
  1119. var
  1120.    szFileName: array[0..79] of Char;
  1121.  
  1122. begin
  1123.      StrPCopy ( szFileName, txtGraphicFileName.Text );
  1124.      mdOpenGraphicKeep( nFileHandle, szFileName );
  1125.  
  1126. end;
  1127.  
  1128. procedure TForm1.cmdShowGraphicClick(Sender: TObject);
  1129. begin
  1130.      mdShowGraphic( nFileHandle, Ord( chkUsePalette.Checked ) );
  1131. end;
  1132.  
  1133. procedure TForm1.cmdHideGraphicClick(Sender: TObject);
  1134. begin
  1135.      mdHideGraphic( nFileHandle );
  1136. end;
  1137.  
  1138. procedure TForm1.cmdCloseGraphicClick(Sender: TObject);
  1139. begin
  1140.      mdCloseGraphic( nFileHandle );
  1141. end;
  1142.  
  1143. procedure TForm1.cmdShowGraphicPosClick(Sender: TObject);
  1144. var
  1145.    nXPos, nYPos, nWidth, nHeight, nType, nCode : Integer;
  1146.  
  1147. begin
  1148.  
  1149.      val( txtGrXPos.Text,   nXPos,   nCode );
  1150.      val( txtGrYPos.Text,   nYPos,   nCode );
  1151.      val( txtGrWidth.Text,  nWidth,  nCode );
  1152.      val( txtGrHeight.Text, nHeight, nCode );
  1153.  
  1154.      mdShowGraphicPos( nFileHandle, nXPos, nYPos, nWidth, nHeight, Ord( chkUsePalette.Checked ) );
  1155.  
  1156. end;
  1157.  
  1158. procedure TForm1.cmdDisplayGraphicClick(Sender: TObject);
  1159. var
  1160.    nXPos, nYPos, nType, nCode : Integer;
  1161.    szFileName: array[0..79] of Char;
  1162.  
  1163. begin
  1164.      StrPCopy ( szFileName, txtGraphicFileName.Text );
  1165.      val( txtDispXPos.Text,   nXPos,   nCode );
  1166.      val( txtDispYPos.Text,   nYPos,   nCode );
  1167.  
  1168.      mdDisplayGraphic( nFileHandle, szFileName, nXPos, nYPos, Ord( chkUsePalette.Checked ) );
  1169.  
  1170. end;
  1171.  
  1172. procedure TForm1.cmdBrowseVideoClick(Sender: TObject);
  1173. begin
  1174.      dlgVideo.Execute;
  1175.      txtFileName.Text := dlgVideo.FileName;
  1176. end;
  1177.  
  1178. procedure TForm1.FormDestroy(Sender: TObject);
  1179. begin
  1180.      { Do this because Delphi does not unload DLLs properly }
  1181.      mdClose(0);
  1182. end;
  1183.  
  1184. procedure TForm1.Button1Click(Sender: TObject);
  1185. var
  1186.    szFileName: array[0..79] of Char;
  1187.  
  1188. begin
  1189.      {mdJSetTransColor( 255, 255, 255 );
  1190.      StrPCopy ( szFileName, txtGraphicFileName.Text );
  1191.      mdJOpenGraphic( nFileHandle, szFileName, 0, 0, 0 );}
  1192.  
  1193. end;
  1194.  
  1195. procedure TForm1.cmdEjectClick(Sender: TObject);
  1196. var nRet: Integer;
  1197.  
  1198. begin
  1199.      nRet := mdCDEject;
  1200. end;
  1201.  
  1202. procedure TForm1.cmdUnloadLibClick(Sender: TObject);
  1203. var
  1204.    nRet : Integer;
  1205. begin
  1206.      nRet := mdCloseLibrary;
  1207. end;
  1208.  
  1209. procedure TForm1.cmdLoadLibClick(Sender: TObject);
  1210. var
  1211.    nRet : Integer;
  1212. begin
  1213.      nRet := mdOpenLibrary;
  1214. end;
  1215.  
  1216. end.
  1217.  
  1218.  
  1219.